<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Programmcode</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Programmcode"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Programmcode rootpage-Programmcode skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Programmcode</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><p>Als <b>Programmcode</b> (oder <b>Programmkode</b>) werden die <a href="Anweisung_(Programmierung)" title="Anweisung (Programmierung)">Anweisungen</a> bezeichnet, die im Rahmen der <a href="Softwareentwicklung" class="mw-redirect" title="Softwareentwicklung">Softwareentwicklung</a> für ein bestimmtes <a href="Computerprogramm" title="Computerprogramm">Computerprogramm</a> oder einen Teil davon entstehen und die dessen Funktionalität in einer bestimmten <a href="Programmiersprache" title="Programmiersprache">Programmiersprache</a> beschreiben bzw. repräsentieren.
</p>
<div class="mw-heading mw-heading2"><h2 id="Arten">Arten</h2></div>
<p>Im Allgemeinen werden folgende Arten von Programmcode unterschieden bzw. so bezeichnet:
</p>
<ul><li><i><a href="Quelltext" title="Quelltext">Quelltext</a></i> ist die für Menschen lesbare und meist von Menschen erstellte Form eines Computerprogramms.</li></ul>
<dl><dd><dl><dd>(wird auch <i>Quell-</i>, <i>Source-</i>, <i>Primärcode</i> oder <i>Quellprogramm</i> genannt)</dd></dl></dd></dl>
<ul><li><i><a href="Zwischencode" title="Zwischencode">Zwischencode</a></i> wird beim <a href="Compiler" title="Compiler">Kompiliervorgang</a> erzeugt und anschließend <a href="Interpreter" title="Interpreter">interpretiert</a> oder in andere <a href="Formale_Sprache" title="Formale Sprache">formale Sprachen</a>, z. B. Maschinencode, übersetzt.</li></ul>
<dl><dd><dl><dd>(wird plattformspezifisch meist unterschiedlich bezeichnet: <a href="Bytecode" title="Bytecode">Bytecode</a>, <a href="Objektcode" title="Objektcode">Objektcode</a>, <a href="Pseudocode" title="Pseudocode">Pseudocode</a> oder ähnlich)</dd></dl></dd></dl>
<ul><li><i><a href="Maschinencode" class="mw-redirect" title="Maschinencode">Maschinencode</a></i> kann von einer Maschine direkt ausgeführt werden, ist für Menschen jedoch nicht oder nur schwer lesbar.</li></ul>
<dl><dd><dl><dd>(wird auch <i>Maschinenprogramm</i>, <i>Binärprogramm</i> oder ähnlich genannt)</dd></dl></dd></dl>
<p>Jeder Programmcode bezieht sich auf genau ein Programm oder einen Programmteil. Die verschiedenen Codearten bauen aufeinander auf; beispielsweise ist der Quelltext die Grundlage für den Zwischencode, dieser für den Maschinencode. In der Regel wird Quelltext von Programmierern erzeugt, die anderen Codearten automatisch generiert. Dabei werden auf der jeweils nächsten Entwicklungsstufe häufig die Programmcodes mehrerer Funktionen/Programmteile zusammengefasst, sodass beispielsweise der Maschinencode eines ganzen Programms (als letzte Stufe) unter Verwendung mehrerer/vieler Programmcode-Teile entstand.
</p>
<div class="mw-heading mw-heading2"><h2 id="Abgrenzung/Mehrdeutige_Verwendung_des_Begriffs"><span id="Abgrenzung.2FMehrdeutige_Verwendung_des_Begriffs"></span>Abgrenzung/Mehrdeutige Verwendung des Begriffs</h2></div>
<ul><li>Mit ‚Programmcode‘ ist nicht ‚Code‘ im Sinn von Sprache/Syntax gemeint, sondern im Sinne von ‚Programmstück‘.</li>
<li>In der Literatur wird der Ausdruck „Programmcode“ zum Teil gleichbedeutend für nur eine der vorgenannten Unterarten verwendet, in vielen Fällen nur für „Quelltext“,<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> aber auch für andere Codearten, zum Beispiel für „Maschinencode“.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup></li>
<li>Mit <a href="Deklarative_Programmierung" title="Deklarative Programmierung">deklarativen</a> oder mit <a href="Grafische_Programmiersprache" class="mw-redirect" title="Grafische Programmiersprache">grafischen Programmiersprachen</a> erzeugte Anweisungen werden nur teilweise als Programmcode/Quelltext bezeichnet (Beispiel siehe<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>), zum Teil aber auch als „Gegenteil von Programmcode“ (= kein Programm-„Text“), Beispiel siehe.<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Formale_Unterschiede">Formale Unterschiede</h2></div>
<p>Programmcodevarianten unterscheiden sich bezüglich ihrer <i>Struktur, Form, Syntax, Speicherung etc.</i> je nach Programmiersprache und den verwendeten Programmierwerkzeugen erheblich. Zum Teil fallen nicht alle Codevarianten an (zum Beispiel kein Zwischencode oder kein Maschinencode), oder sie werden mit anderen <i>Bezeichnungen</i> benannt (wie „Bytecode“).
</p><p><span id="managed"></span><span id="nicht_verwaltet"></span><span id="unmanaged"></span><span id="verwaltet"></span>
In bestimmten Entwicklungsumgebungen wird zwischen <i>verwaltetem Code</i> und <i>nicht verwalteten Code</i> unterschieden (englisch <i>‚<span lang="en">managed …</span>‘</i> und <i>‚<span lang="en">unmanaged code</span>‘</i> genannt), siehe beispielsweise in <i><a href="Java_(Programmiersprache)" title="Java (Programmiersprache)">Java</a></i> oder auch in den <i><a href=".NET_(Oberbegriff)" title=".NET (Oberbegriff)">.NET</a></i>-Sprachen. Bei verwaltetem Code wird unter anderem die Speicherverwaltung<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> weitgehend von der <a href="Laufzeitumgebung" title="Laufzeitumgebung">Laufzeitumgebung</a> sowie von deren <a href="Compiler" title="Compiler">Übersetzern</a> übernommen.
</p>
<div class="mw-heading mw-heading2"><h2 id="Lebensdauer">Lebensdauer</h2></div>
<p>Im Rahmen der Entwicklung von Programmcode wird dieser meist sehr oft und kurzfristig geändert/korrigiert (Quelltext) bzw. neu erzeugt (die anderen Arten). Programmcodes existieren dabei oft nur temporär bis zum nächsten Arbeitsschritt oder bis zur nächsten Softwareversion, zum Beispiel nach der Korrektur eines <a href="Programmfehler" title="Programmfehler">Programmfehlers</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Immaterieller_Begriff">Immaterieller Begriff</h2></div>
<p>‚Programmcode‘ ist ein immaterieller Begriff und kann in unterschiedlichen Medien existieren, beispielsweise im Hauptspeicher eines Editors (während der Erstellung von Quelltext), als Member einer <a href="Programmbibliothek" title="Programmbibliothek">Programmbibliothek</a> oder als ausführbare Datei (wenn er gespeichert wird), im Hauptspeicher des Computers (bei der Ausführung des Programms) oder auf Papier (beispielsweise in einer Quelltextliste).
</p>
<div class="mw-heading mw-heading2"><h2 id="Vom_Quelltext_zur_Ausführung"><span id="Vom_Quelltext_zur_Ausf.C3.BChrung"></span>Vom Quelltext zur Ausführung</h2></div>
<p>Bevor ein <a href="Computerprogramm" title="Computerprogramm">Computerprogramm</a> von einem <a href="Computer" title="Computer">Computer</a> ausgeführt werden kann, muss es in <a href="Maschinensprache" title="Maschinensprache">Maschinensprache</a>, also in eine vom Computer verständliche Folge von <a href="Bit" title="Bit">Bits</a>, umgesetzt werden. Dies kann entweder vorab durch einen <a href="Compiler" title="Compiler">Compiler</a> oder – zur <a href="Laufzeit_(Informatik)" title="Laufzeit (Informatik)">Laufzeit</a> – durch einen <a href="Interpreter" title="Interpreter">Interpreter</a> oder <a href="Just-in-time-Kompilierung" title="Just-in-time-Kompilierung">JIT-Compiler</a> geschehen. In vielen Fällen wird mittlerweile eine Kombination aus beiden Varianten gewählt, bei der zur <a href="%C3%9Cbersetzungszeit" title="Übersetzungszeit">Übersetzungszeit</a> der Quelltext der eigentlichen Programmiersprache in einen abstrakten Zwischencode übersetzt wird, welcher dann zur Laufzeit von einer <a href="Laufzeitumgebung" title="Laufzeitumgebung">Laufzeitumgebung</a> durch einen Interpreter oder JIT-Compiler in den eigentlichen Maschinencode überführt wird. Dieses Prinzip hat den Vorteil, dass ein und derselbe Zwischencode auf sehr vielen verschiedenen <a href="Rechnerarchitektur" title="Rechnerarchitektur">Rechnerarchitekturen</a> ausführbar ist und somit nicht für jede Zielarchitektur eine eigene Version der Software erscheinen muss. Typische Beispiele für einen solchen Zwischencode sind der Java-<a href="Bytecode" title="Bytecode">Bytecode</a> sowie die <a href="Common_Intermediate_Language" title="Common Intermediate Language">Common Intermediate Language</a>. Mittels eines <a href="Debugger" title="Debugger">Debuggers</a> kann die Funktionsweise des Programmes zur Laufzeit verfolgt werden.
</p>
<div class="mw-heading mw-heading2"><h2 id="Siehe_auch">Siehe auch</h2></div>
<div class="sisterproject" style="margin:0.1em 0 0 0;"><span class="noviewer" style="display:inline-block; line-height:10px; min-width:1.6em; text-align:center;" aria-hidden="true" role="presentation"><span class="mw-default-size" typeof="mw:File"><span title="Wiktionary"></span></span></span><b><a href="https://de.wiktionary.org/wiki/Programmcode" class="extiw external" title="wikt:Programmcode">Wiktionary: Programmcode</a></b> – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen</div>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://www.duden.de/rechtschreibung/Programmcode">Programmcode, Programmkode</a> – <i><a href="Duden" title="Duden">Duden</a></i>, veröffentlicht 2018; u. a. unter „Bedeutungsübersicht“ mit „<i>Quellcode</i>“</span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text">Informatik DUDEN ISBN 3-411-05232-5 Ausgabe 1993, S. 132 <i>(Programm-)Code = „Ein in eine Maschinensprache übersetztes Programm“</i></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text">TUM <a rel="nofollow" class="external text" href="https://ttt.in.tum.de/dl/Diplom_VAM.pdf">Visualisierung Abstrakter Maschinen</a> (<a href="Portable_Document_Format" title="Portable Document Format">PDF</a>, ≈ 1 <a href="Megabyte" class="mw-redirect" title="Megabyte">MB</a>) – <i><a href="Universit%C3%A4t_Trier" title="Universität Trier">Universität Trier</a></i>, veröffentlicht am 5. März 2001; u. a. mit „[…] aber in dem übersetzten Programmcode, welcher der abstrakten Maschine als Eingabe gilt, […]“</span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><a href="#cite_ref-4">↑</a></span> <span class="reference-text">National Instruments: <a rel="nofollow" class="external text" href="https://www.ni.com/white-paper/14556/de/">Die Vorteile der grafischen Programmierung mit NI LabVIEW</a> – <i><a href="National_Instruments" title="National Instruments">National Instruments</a></i>, am 7. August 2013; dort wurde das <i>grafische Blockdiagramm</i> als <i>Programmcode</i> bezeichnet</span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><a href="#cite_ref-5">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://books.google.de/books?id=LFMhNmBx8RgC&pg=PA899">14.3 Trigger</a> – Abschnitt in <i>Visual C# 2008: Windows-Programmierung mit dem .NET Framework 3.5</i>, von <i>Jürgen Bayer</i> über den <i><a href="Markt%2BTechnik_Verlag" title="Markt+Technik Verlag">Markt-und-Technik-Verlag</a></i> 2008 veröffentlicht; ISBN 978-3-8272-4339-3, S. 899 (unten), u. a. mit „Das Ganze erfordert keine einzige Zeile Programmcode, sondern wird komplett (deklarativ) in XAML definiert.“</span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><a href="#cite_ref-6">↑</a></span> <span class="reference-text">die <a href="Speicherverwaltung" title="Speicherverwaltung">Speicherverwaltung</a> findet hier weniger auf <a href="Betriebssystemebene" class="mw-redirect" title="Betriebssystemebene">Betriebssystemebene</a> als vielmehr auf Anwendungsebene statt – genauer in der <a href="Laufzeitumgebung" title="Laufzeitumgebung">Laufzeitumgebung</a> (der jeweiligen Anwendung oder des auch sogenannten <i><a href="Anwendungsprogramm" class="mw-redirect" title="Anwendungsprogramm">Programmes</a></i>), auch <i>virtuelle Maschine</i> (und bspw. im Falle von Java <i><a href="Java_Virtual_Machine" title="Java Virtual Machine">Java-VM</a></i>) genannt</span>
</li>
</ol>
<div class="hintergrundfarbe1 rahmenfarbe1 navigation-not-searchable normdaten-typ-s" style="border-style: solid; border-width: 1px; clear: left; margin-bottom:1em; margin-top:1em; padding: 0.25em; overflow: hidden; word-break: break-word; word-wrap: break-word;" id="normdaten">
<div style="display: table-cell; vertical-align: middle; width: 100%;">
<div>
Normdaten (Sachbegriff): <a href="Gemeinsame_Normdatei" title="Gemeinsame Normdatei">GND</a>: <span class="-print"><a rel="nofollow" class="external text" href="https://d-nb.info/gnd/4734701-6">4734701-6</a></span> </div>
</div></div></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2025-12-02" href="https://de.wikipedia.org/wiki/?title=Programmcode&oldid=262055892">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>